package com.neusoft.crm.mapper;

import com.neusoft.crm.po.DataArea;
import com.neusoft.crm.po.DataClientLevel;
import com.neusoft.crm.po.DataServerType;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 基础数据信息数据层
 *
 * @author lanan1207
 */
@Mapper
public interface BasicDataMapper {

    /**
     * 显示地区列表
     *
     * @param dataArea 查询所有地区信息
     * @return 查询结果
     */
    @Select("select * from dataarea where delMark=1")
    List<DataArea> selectRegionList(DataArea dataArea);

    /**
     * 新增地区信息
     *
     * @param dataArea 新增的地区信息
     * @return 受影响的行数
     */
    @Insert("insert into dataarea values (null,#{daName},1)")
    int addRegionInfo(DataArea dataArea);

    /**
     * 编辑地区信息
     *
     * @param dataArea 更新的地区信息内容
     * @return 受影响的行数
     */
    @Update("update dataarea set daName=#{daName},delMark=#{delMark} where daId=#{daId}")
    int updateRegionInfo(DataArea dataArea);

    /**
     * 删除地区信息
     *
     * @param dataArea 要删除的地区信息
     * @return 受影响的行数
     */
    @Update("update dataarea set delMark=0 where daId=#{daId}")
    int deleteRegionInfo(DataArea dataArea);

    /**
     * 显示客户等级列表
     *
     * @param dataClientLevel 查询客户等级
     * @return 显示客户等级列表
     */
    @Select("select * from dataclientlevel where delMark=1")
    List<DataClientLevel> selectCustomerLevelList(DataClientLevel dataClientLevel);

    /**
     * 新增客户等级
     *
     * @param dataClientLevel 客户等级
     * @return 受影响的行数
     */
    @Insert("insert into dataclientlevel values (null,#{dclName},1)")
    int addCustomerLevel(DataClientLevel dataClientLevel);

    /**
     * 编辑客户等级信息
     *
     * @param dataClientLevel 客户等级
     * @return 受影响的行数
     */
    @Update("update dataclientlevel set dclName=#{dclName},delMark=#{delMark} where dclId=#{dclId}")
    int updateCustomerLevel(DataClientLevel dataClientLevel);

    /**
     * 删除客户等级
     *
     * @param dataClientLevel 要删除的客户等级信息
     * @return 受影响的行数
     */
    @Update("update dataclientlevel set delMark=0 where dclId=#{dclId}")
    int deleteCustomerLevel(DataClientLevel dataClientLevel);

    /**
     * 显示服务类型列表
     *
     * @param dataServerType 服务类型
     * @return 受影响的行数
     */
    @Select("select * from dataservertype where delMark=1")
    List<DataServerType> selectServiceTypeList(DataServerType dataServerType);

    /**
     * 新增服务类型
     *
     * @param dataServerType 要新增的服务类型信息
     * @return 受影响的行数
     */
    @Insert("insert into dataservertype values(null,#{dstName},1)")
    int addServiceType(DataServerType dataServerType);

    /**
     * 编辑服务类型
     *
     * @param dataServerType 更新后的服务类型信息
     * @return 受影响的行数
     */
    @Update("update dataservertype set dstName=#{dstName},delMark=#{delMark} where dstId=#{dstId}")
    int updateServiceType(DataServerType dataServerType);

    /**
     * 删除服务类型
     *
     * @param dataServerType 要删除的服务类型信息
     * @return 受影响的行数
     */
    @Update("update dataservertype set delMark=0 where dstId=#{dstId}")
    int deleteServiceType(DataServerType dataServerType);
}
